package com.system.cacheClient.client;

import com.system.cacheClient.common.CacheR;

/**
 * List缓存客户端接口
 * 提供List类型的特殊操作方法
 */
public interface ListCacheClient {
    
    /**
     * 从列表左侧弹出元素
     * @param key 列表键
     * @param <T> 数据类型
     * @return 弹出的元素
     */
    <T> CacheR<T> lpop(String key);
    
    /**
     * 从列表右侧弹出元素
     * @param key 列表键
     * @param <T> 数据类型
     * @return 弹出的元素
     */
    <T> CacheR<T> rpop(String key);
    
    /**
     * 获取列表指定范围的元素
     * @param key 列表键
     * @param start 起始位置
     * @param end 结束位置
     * @param <T> 数据类型
     * @return 元素列表
     */
    <T> CacheR<java.util.List<T>> lrange(String key, long start, long end);
    
    /**
     * 获取列表长度
     * @param key 列表键
     * @return 列表长度
     */
    CacheR<Long> llen(String key);
}
